#pragma once
#ifndef __QUATERNION_H__
#define __QUATERNION_H__

#include <d3dx9math.h>
#include "matrix4x4.h"

class c_quaternion : public D3DXQUATERNION
{
public: 
    inline c_quaternion() {}
    inline explicit c_quaternion(const float*); 
    inline explicit c_quaternion(const D3DXQUATERNION&); 
    inline c_quaternion(const float x, const float y, const float z, const float w); 
    
    inline static c_quaternion Identity(); 

    inline void from_matrix4x4(const c_matrix4x4&); 
    inline c_matrix4x4 to_matrix4x4() const;
    
    inline c_quaternion operator = (const D3DXQUATERNION&);
};

#include "quaternion.inl"

#endif